
Groupe de commandes "DB": Base de donnes
=========================================

Des exemples de ce groupe de commandes se trouvent dans le profil 
"Exemples de base de donnes" du "2me Jeu de profils", lui-mme 
slectionn avec "Permute Jeu-Profil" du menu contextuel.

--> Attention !
La base de donnes de RK est base sur le moteur MS Jet 3.5 (DAO 3.5).
Je suis dsol de dire que DAO 3.6 et les versions au-dessus ne sont pas 
supports ! DAO 3.6 est utilis par ME, 2000, XP etc.
Mais ce n'est pas une raison de ne pas utiliser les fonctions de la base 
de donnes de RK.
Dans quelques (ou tous les) cas, il est requis de prparer le systme pour 
DAO 3.5. Bien que DAO 3.5 et DAO 3.6 seront installs paralllement, il ne 
semble y avoir aucun problme.

Mais vous devez d'abord essayer si vous pouvez ouvrir une base de donnes 
avec RK : cliquez par exemple le bouton "Ouvre BD xls" du profil 
"Exemples de base de donnes".
Si vous recevez un message-erreur du type "Class not registered, looking 
for Object with CLSID ... long number ...) cela signifie que DAO 3.5 n'est 
pas disponible sur votre systme.
Ensuite vous devez faire un 2me contrle : ouvrez le chemin "C:\Program 
Files\Fichiers communs\Microsoft Shared\dao". Si le dossier existe vous 
trouverez seulement le fichier dao360.dll. Cela signifie que DAO 3.6 est 
install. Le fichier pour DAO 3.5 est dao350.dll.
Mais ce serait trop facile de copier le fichier dans ce dossier, parce que 
l'installation de DAO 3.5 a besoin de plus de fichiers et doit tre 
correctement enregistre.

C'est pourquoi la faon la plus simple de prparer votre systme est de 
tlcharger DAO 3.5 du site freewarehits.de et d'excuter le fichier.exe 
sur votre systme (aprs l'avoir dzip).
L'archive-zip contient un fichier appel vb5db.dll. Il doit tre copi 
dans le dossier C:\WINDOWS\SYSTEM (s'il n'y est pas dj).

J'ai essay cette mthode sur une installation WinME et il a fonctionn 
immdiatement sans aucun problme. Mais il faut dire que je (l'auteur) ne 
peux donner aucune garantie et vous devez le faire  vos propres risques !

L'adresse directe pour tlcharger est :
http://www.freewarehits.de/AddFiles/dao35.zip (3.2 mb)

Les banques de donnes suivantes (au minimun) seront assistes par RK :

- Access
- DBase 3/4/5
- Excel 3/4/5/8
- FoxPro 2/2.5/2.6/3
- Lotus WK 1/3/4
- Paradox 3/4/5
- Text

Access (.mdb), Excel (.xls) et Text (.txt) ont t testes avec succs.

Je renvoie le lecteur dsireux de connatre les renseignements techniques 
au fichier-texte "DB" dans le dossier allemand.


Manire d'oprer
----------------
En premier lieu il faut ouvrir  chaque fois une banque de donnes.
RK travaille avec 2 listes internes. La premire positionne une ligne, la 
2me un champ. Le champ qui sera envoy avec (DB.FIELD.SEND)  
l'application dpend donc de ces 2 listes.
RK donne  l'application diverses commandes pour positionner ces lignes.
La commande se prte par exemple  l'envoi unique d'un champ.
D'autres commandes comme SET et INC sont utilises pour l'envoi en srie.

Rgles gnrales :

1. Ouvrir une banque de donne
2. Slectionner la ligne dans la 1re liste
3. Slectionner le champ dans la 2me liste
4. Envoyer


/DB.OPEN f[,t,p3,p4,p5]: Ouvre une base de donnes <f> (fichier), 
                         feuille <t> (table), p3/4/5 = paramtres 
------------------------ facultatifs

En saisissant une banque de donnes Access (.mdb) ou une feuille de calcul 
Excel (.xls), vous devez dfinir les paramtres <f> & <t>. Si le paramtre 
<t> n'est pas donn, une liste sera automatiquement affiche, qui devra 
tre choisie dans une table (correspondant  DB.TABLE.SELECT).
En saississant des donnes-textes (.txt) spares par TAB, il n'y aura que 
le paramtre <f>.
Dans ces 3 cas RK reconnat bien-sr le format et propose automatiquement 
les paramtres correspondants.
La position des paramtres sera traite en priorit.
Dans d'autres cas (non tests) on devra au moins ajouter le paramtre p3.

Particularit des paramtres :

f : Fichier:    Nom = chemin du fichier

t : Table:  La feuille Excel tablit, c'est connu, une table individuelle. 
            On ne peut saisir pour l'instant que ce que l'on donne. Pour 
            Access il s'agit d'une donne unique de la banque de donnes. 
            Les textes sont pour ainsi dire en une dimension, de sorte que 
            le paramtre ici tombe.

            Pour Excel le nom de la table doit tre suivi du signe $.
            Pour un fichier-texte, #txt est automatiquement cr.
            Pour Access le nom de la table reste inchang.
            D'autres formats n'ont pas t tests.

            Dans des cas douteux, on laisse tomber le paramtre et on 
            choisit la table dans la bote qui apparat. Dans celle-ci on 
            va reconnatre le nom exacte de la table, pour ensuite le 
            reporter dans le paramtre "t".

p3: Connect:  Nom du type de la banque de donnes. Voici les descriptions 
              exactes (Access sans point-virgule): 

              Access
              dBASE III;
              dBASE IV;
              dBASE 5.0;
              Excel 3.0;
              Excel 4.0;
              Excel 5.0;
              Excel 8.0;
              FoxPro 2.0;
              FoxPro 2.5;
              FoxPro 2.6;
              FoxPro 3.0;
              Lotus WK1;
              Lotus WK3;
              Lotus WK4;
              Paradox 3.x;
              Paradox 4.x;
              Paradox 5.x;
              Text;

              RK utilise par dfaut Excel 3.0. Cela fonctionne trs 
              bien avec la version 8.0 et bien sr avec les versions 
              plus anciennes.

p4: Rec-Set-Type:  p4 = 0  2. Cela permet de rgler les types suivants:

                   0 : Table
                   1 : Dynaset  (rglage standard)
                   2 : Snapshot

                   En test (mdb/xls/txt) tout fonctionne sous "Dynaset", 
                   les tables galement.
 
p5: Engine:   p5 = 0  1. Ici on peut choisir le rglage du moteur:

              0 : Jet  (MS, rglage standard)
              1 : ODBC


Exemple: {/DB.OPEN c:\data\db.xls}
Exemple: {/DB.OPEN c:\data\db.mdb,sheet1}
Exemple: {/DB.OPEN c:\data\db.xls,sheet1$}
Exemple: {/DB.OPEN c:\data\db.txt}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,0}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,2,1}

         --> note: Paramtre pour dbase inconnu !

Exemple: bouton "Ouvre BD xls" du profil "Exemples de base de donnes"



/DB.CLOSE .............: Ferme la base de donnes actuelle
------------------------

Elle permet de fermer une banque de donnes pour saisir la banque d'une 
autre application et libre ainsi la mmoire.

Exemple : bouton "Ferme BD" du profil "Exemples de base de donnes"


/DB.FIELD.ASK .........: Rgle le n du champ, dfini par l'utilisateur 
------------------------ pendant le processus du scnario

Exemple : {/DB.FIELD.ASK}


/DB.FIELD.CLIP [len] ..: Copie le contenu du champ actuel dans le presse-
------------------------ papiers, longueur maximale [len] facultative

Exemple: bouton "Vers le pres.-p." du profil "Exemples de base de donnes"

Exemple : {/DB.FIELD.CLIP 25}

Dans le dernier exemple les 25 premiers caractres du champ actuel seront 
copis dans le presse-papiers.


/DB.FIELD.INC .........: Incrmente le n d'un champ
/DB.FIELD.DEC .........: Dcrot le n d'un champ
------------------------

Exemple : {/DB.FIELD.INC}


/DB.FIELD.NMB>VAR .....: Copie le n du champ dans la variable VAR 
                         actuelle
/DB.FIELD.NMB<VAR .....: Rgle le n du champ  la variable VAR actuelle
------------------------

Ces commandes permettent l'change du n du champ avec les variables, 
ainsi les calculs sont possibles.

Exemple: 

{/BTCH.EXPLICIT}
{/DB.FIELD.NMB>VAR}
{/VAR.ADD 3}
{/DB.FIELD.NMB<VAR}


/DB.FIELD.SEND [len] ..: Envoie le contenu du champ actuel, longueur 
------------------------ maximale [len] facultative

Le champ est le plus petit lment de la base de donnes :
Base de donnes -> Table -> Ligne -> Champ
RK ne peut envoyer que celui-ci.
Toutes les lignes sont envoyes par une succession des commandes 
DB.FIELD.SEND dans le scnario. Avant l'envoi le pointeur de la ligne doit 
tre positionn correctement.

Exemple: bouton "Sl. & Envoie" du profil "Exemples de base de donnes"

Exemple : {/DB.FIELD.SEND 15}

Dans ce 2me exemple l'envoi sera de 15 caractres au maximum.


/DB.FIELD.SEND.FRMT str: Envoie le contenu du champ actuel au format 
------------------------ (str=###0.00 pour obtenir 1.30)

Cette commande permet le formatage des champs "nombres" et "dates".

Exemple : {/DB.FIELD.SEND.FRMT ##0.00}
Exemple : {/DB.FIELD.SEND.FRMT long date}

-> Remarque !
Pour les champs "dates" on trouve la description dans le fichier-texte 
"DATE" (DAT.FORMAT str), avec l'exception des "paramtres uniques".


/DB.Field.SET nmb .....: Rgle le n du champ  <nmb>
------------------------

Exemple: bouton "Sl. & Envoie" du profil "Exemples de base de donnes"


/DB.Field.VIEW ........: Affiche le contenu du champ actuel dans l'Aperu 
------------------------ interne de texte

Exemple: {/DB.Field.VIEW}


/DB.PROP.VIEW .........: Affiche les proprits de la base actuelle dans 
------------------------ l'Aperu interne de texte

Exemple: bouton "Proprits" du profil "Exemples de base de donnes"


/DB.REC.ASK ...........: Rgle un n d'enregistrement, dfini par 
------------------------ l'utilisateur pendant le processus du scnario

Exemple: bouton "Envoie-boucle" du profil "Exemples de base de donnes"


/DB.REC.INC ...........: Incrmente le n d'enregistrement
/DB.REC.DEC ...........: Dcrot le n d'enregistrement
------------------------

Exemple: bouton "Enreg. suivant" du profil "Exemples de base de donnes"


/DB.REC.NMB>VAR .......: Copie le n d'enregistrement dans la variable VAR 
                         actuelle
/DB.REC.NMB<VAR .......: Rgle le n d'enregistrement  la variable VAR
------------------------ actuelle

Ces commandes permettent l'change du n d'enregistrement avec les 
variables, ainsi les calculs sont possibles.

Exemple: 

{/BTCH.EXPLICIT}
{/DB.REC.NMB>VAR}
{/VAR.ADD 3}
{/DB.REC.NMB<VAR}


/DB.REC.SELECT ........: Rgle l'enregistrement de la ligne && le n du 
                         champ en choisissant  partir des 2 listes dans 
------------------------ la fentre "Slect. l'enreg."

Cettre fentre permet de choisir un champ arbitraire dans une ligne 
arbitraire. On slectionne la ligne dans la liste de gauche et le champ 
dans la liste de droite. La slection de la ligne - et du N du champ - 
reste mmorise  la fermeture de la fentre pour tre envoye  
l'application, par exemple avec la commande de champ {/DB.FIELD.SEND}.
L'utilisateur trouvera rapidement les possibilits de rglage de la 
fentre. 
Un mot pour "Auto" : 
Ce rglage permet, comme dans Excel, de tester la largeur maximale 
autorise pour tous les champs.
Les changements de rglage seront perdus si l'on clique sur "Cancel". 
Ils ne seront mmoriss qu'avec un clic sur "OK" et seront donc  
disposition lors de la prochaine session.
Les fichiers-texte ne possdent qu'un champ (0), c'est pourquoi la plupart 
des fonctions sont dsactives dans ce cas.

Exemple: bouton "A slect. enr." du profil "Exemples de base de donnes"

--> Conseil
L'excution du scnario peut tre interrompue  l'aide de la commande 
"BTCH.EXITIF.CANCEL" si la bote est ferme avec le bouton "Ferme".

--> Conseil
Vous pouvez vous dplacer avec les touches "Haut" et "Bas" dans les 
listes. De plus :

Curseur "Droite" : active la liste droite
Curseur "Gauche" : active la liste gauche
"Enter" ........: identique  OK
"Espace" .......: identique  OK


/DB.REC.SET nmb .......: Rgle le n d'enregistrement  <nmb>
------------------------

La ligne se compose d'un groupe de champs, par exemple "Prnom", "Nom", 
"Lieu", etc... Dans le cas d'Excel la ligne est une ligne de cellules et 
le champ une seule cellule.

Exemple : {/DB.REC.SET 155}


/DB.REC.VIEW [len] ....: Affiche tous les champs dans l'Aperu interne de 
------------------------ texte, longueur max. [len] facultative

{/DB.REC.VIEW}
Exemple:  bouton "A slect. enr." du profil "Exemples de base de donnes"

{/DB.REC.VIEW 75}
Exemple:  bouton "Enreg. suivant" du profil "Exemples de base de donnes"
 
Dans le dernier exemple, les 75 caractres (depuis la gauche) de tous les 
champs seront affichs.


/DB.TABLE.ASK-N .......: Rgle le n de la table, dfini par l'utilisateur 
                         pendant le processus du scnario
/DB.TABLE.ASK-S .......: Rgle le nom de la table, dfini par 
------------------------ l'utilisateur pendant le processus du scnario

Exemple : {/DB.TABLE.ASK-N}
Exemple : {/DB.TABLE.ASK-S}

--> Conseil
Pour la commande ASK-S, l'excution du scnario peut tre interrompue  
l'aide de la commande "BTCH.EXITIF.CANCEL" si la bote est ferme avec 
le bouton "Ferme".


/DB.TABLE.SELECT ......: Choisit la table dans la liste
------------------------

En ouvrant une banque de donnes, on peut passer d'une table  l'autre.

Exemple: bouton "Change - table" du profil "Exemples de base de donnes"

--> Conseil
L'excution du scnario peut tre interrompue  l'aide de la commande 
"BTCH.EXITIF.CANCEL" si la bote est ferme avec le bouton "Ferme".


/DB.TABLE.SET-N nmb ...: Rgle le n de la table <nmb>
/DB.TABLE.SET-S str ...: Rgle le nom de la table <str>
------------------------

Exemple : {/DB.TABLE.SET-N 4}
Exemple : {/DB.TABLE.SET-S profit$}
